using System;
using System.Collections.Generic;
using ClickSocial.Framework;
using ClickSocial.Components;
using ClickSocial.Entities;
using System.Web.UI.WebControls;
using System.IO;

namespace ClickSocial
{
    public partial class MyEvents : CDefault
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Binding();
            }
        }

        protected void Binding()
        {
            List<EventoInfo> eventos = new List<EventoInfo>();
            PagedDataSource Paginacion = new PagedDataSource();

            if (User.IsInRole(Global.RolesApp.Fotografo))
            {
                eventos = Evento.GetAllByFotografo(User.Identity.Name);     
            }
            else if (User.IsInRole(Global.RolesApp.UserEvent))
            {
                eventos = Evento.GetAllByUserEvent(User.Identity.Name);
            }
            else if (User.IsInRole(Global.RolesApp.Host))
            {
                eventos = Evento.GetAll();
            }

            Paginador paginador = new Paginador(Request["page"], Request.Path, Request.QueryString);
            paginador.PageDS.DataSource = eventos;
            paginador.PageDS.AllowPaging = true;
            paginador.PageDS.PageSize = 6;
            litPaginador.Text = paginador.Render();

            dlEventos.DataSource = paginador.PageDS;
            dlEventos.DataBind();
        }

        protected void chkDestado_CheckedChanged(object sender, EventArgs e)
        {
            CheckBox chkDestacado = sender as CheckBox;
            
            if(chkDestacado==null) return;
            
            long evento_id = long.Parse(chkDestacado.Text);

            if (chkDestacado.Checked == true)
            {
                Destacados.AgregarDestacado(evento_id);
            }
            else
            {
                Destacados.QuitarDestacado(evento_id);
            }
            Binding();
        }

        protected void txtOrden_TextChanged(object sender, EventArgs e)
        {
            TextBox txtOrden = sender as TextBox;

            if (txtOrden == null) return;

            if(string.IsNullOrEmpty(txtOrden.Text)) return;

            Validacion val = new Validacion();

            if(val.IsPositiveNumber(txtOrden.Text))
            {
                long evento_id = long.Parse(txtOrden.ToolTip);
                int orden = int.Parse(txtOrden.Text);

                Destacados.OrdenDestacado(evento_id, orden);
            }

        }

        protected void dlEventos_DeleteCommand(object source, DataListCommandEventArgs e)
        {
            if (e.CommandName == "Delete")
            {
                EventoInfo oEvento = Evento.GetOne(long.Parse(e.CommandArgument as string));

                string PathEvento = string.Format("{0}\\{1}\\{2}", Application["BaseDir"], oEvento.Fotografo, oEvento.EventoID.ToString());

                if (Directory.Exists(PathEvento))
                {
                    Directory.Delete(PathEvento, true);
                }

                Evento.Delete(oEvento.EventoID);

                Binding();

            }
        }
    }
}
